package cn.com.reflect;

//获取class对象

import cn.com.domain.Person;

/**
 * 1.class.forName（"全类名"）；将字节码加载入内存，返回class对象
 * 多用于配置文件，将类名定义在配置文件中。读取文件，加载类
 *
 * 2.类名.class ：通过类名的属性class类中定义着
 * 多用于参数传递
 *
 * 3.对象.getClass（）：getClasss（）方法在Object类中定义着
 * 多用于对象的获取字节码的方式
 *
 *
 * 结论：同一个字节码文件在一次程序的运行中只会加载进内存一次；
 */


public class ReflectDemo {
    public static void main(String[] args) throws Exception{

        Class aClass = Class.forName("cn.com.domain.Person");
        System.out.println(aClass);

        Class<Person> personClass = Person.class;
        System.out.println(personClass);

        Person person=new Person();
        Class<? extends Person> aClass1 = person.getClass();
        System.out.println(aClass1);

        System.out.println(aClass==aClass1);
        System.out.println(aClass==personClass);
    }
}
